#ifndef WORLD_HH_
# define WORLD_HH_
# include "../Globals.hh"
# include <QtCore>

/**
 * \brief A játék logika névtere
 *
 * Az itteni osztályok mind szálbiztosak.
 */
namespace World {
    class IGalaxy;
    class User;     QSP(User);      QWP(User);      P(User);
    class Galaxy;   QSP(Galaxy);    QWP(Galaxy);    P(Galaxy);
    class Player;   QSP(Player);    QWP(Player);    P(Player);
    class Star;     QSP(Star);      QWP(Star);      P(Star);
    class Fleet;    QSP(Fleet);     QWP(Fleet);     P(Fleet);
    class Planet;   QSP(Planet);    QWP(Planet);    P(Planet);

    typedef QMap< pGalaxy, spPlayer > PlayerMapByGalaxy;
    typedef QMap< pUser,   spPlayer > PlayerMapByUser;
    typedef QMap< pUser,   spPlayer > PlayerMap;
    typedef QMap< u8,      spFleet  > FleetMap;
    typedef QMap< QString, spGalaxy > GalaxyMap;
    typedef QMap< u8,      spPlanet > PlanetMap;
    typedef QMap< u8,      spStar   > StarMap;
    typedef QMap< QString, spUser   > UserMap;
}

#endif // ndef WORLD_HH_
